package tree

import "fmt"

type Node struct {
	Value       int
	Left, Right *Node
}

func CreateNode(value int) *Node {
	// 使用自定义工厂函数
	// 注意返回了局部变量地址
	return &Node{Value: value}
}

func (node Node) Print() {
	// 函数名前定义接收者
	fmt.Print(node.Value, " ")
}

func (node *Node) SetValue(value int) {
	if node == nil {
		fmt.Println("Setting value to nil node. Ignored!")
		return // node是nil不可能拿到value必须return
	}
	node.Value = value
}
